<?php
class xprofileController extends Zend_Controller_Action
{
	private $_uiVar = array();
	private $_member;

	public function init()
	{
		$this->_uiVar["html"]["title"] = STE_Html::WEBSITE_TITLE;

		try
		{
			$db = Zend_Registry::get("DB");			
			$this->_member = new STE_Member($db);
		} catch (Exception $ex)	{
			echo $ex->getMessage();
		}
	}

	public function changePasswordAction()
	{
		$adminSession = new Zend_Session_Namespace("STE_ADMIN");
		if ((isset($adminSession->member["IS_LOGIN"])) || ($adminSession->member["IS_LOGIN"] == 1))
		{
			$formData = $_POST;
			$errorMessage = $this->_checkData($formData);
			if (empty($errorMessage))
			{
				try {
					$result = $this->_member->changePassword($adminSession->member["EMAIL"], 
															 $formData["currentPassword"], 
															 $formData["newPassword"]);
					echo json_encode(array('code' => 0, 'data' => 'Thành công.'));					
				} catch (Exception $e) {
					echo json_encode(array('code' => -101, 'data' => $e->getMessage()));
				}
			}
			else
				echo json_encode(array('code' => -99, 'data' => $errorMessage));			
		} else
			echo json_encode(array("code" => -100, "data" => "- Bạn cần phải đăng nhập để thực hiện chức năng này. <br />"));
	}
	
	public function getProfileAction()
	{
		$adminSession = new Zend_Session_Namespace("STE_ADMIN");
		try {
			$member = $this->_member->getMember($adminSession->member['ID']);
			$fullName = ($member['fullname'] == null ? 'Không có' : $member['fullname']);			
			echo json_encode(array('fullName' => $fullName));
		} catch (Exception $e) {
			
		}		
	}
	
	private function _checkData($formData)
	{
		$adminSession = new Zend_Session_Namespace("STE_ADMIN");
				
		if (empty($formData["currentPassword"]) || 
			empty($formData["newPassword"]) || 
			empty($formData["newPasswordConfirm"])) { // check if the password is empty
			return "Vui lòng nhập vào các thông tin bắt buộc. <br />";
		} else if($formData["newPassword"] != $formData["newPasswordConfirm"]) { // check if the new password is different to the old one.
			return "Mật khẩu không trùng khớp";
		}

		// check if the current password is right
		$member = $this->_member->checkLogin($adminSession->member['EMAIL'], 
											 $formData['currentPassword']);								
		if(empty($member)) {
			return "Mật khẩu hiện hành sai";
		}
		
		if($member['PASSWORD'] == md5($formData['newPassword'])) {
			return "Mật khẩu mới phải khác mật khẩu cũ";
		}
		
		return "";
	}
}

